The invention relates generally to a system and method for controlling congestion in a packet switched communications system and in particular to an explicit rate congestion control system and method for an asynchronous transfer mode (ATM) communications network.
A variety of different communications networks, such as a frame relay network and an asynchronous transfer mode (ATM) network, have been introduced which are intended to carry packetized data between a source and a destination. In an ATM network, data may be communicated between a source and a destination using fixed 53 byte data cells. These fixed-sized data cells travel along data paths known as virtual channels (VCs). Each VC connects a source to a destination and each VC may travel through a plurality of switches that route the data. Each data source may set up either variable bit rate (VBR) or constant bit rate (CBR) virtual channels depending on the bit rates needed by that data source. For a data source transmitting typical digital electronic data traffic such as images or portions of web pages, the amount of traffic may be non-existent at some times and then may be very heavy during other periods of time (e.g., this data traffic is "bursty" since it is communicated in bursts). For data traffic which is bursty and can be delayed some period of time without errors, it is most efficient to dynamically allocate the total available bandwidth of the switch among the VCs connected to the switch that require some of the bandwidth at any particular time. This type of data traffic is known as available bit rate (ABR) traffic since the total available bit rate of a switch is dynamically allocated to each VC connected to the switch depending on the bit rate requirement of that VC and the other VCs connected to the switch.
The Available Bit Rate (ABR) service, as defined by the ATM Forum, is a type of communications service class in which the communications network plays an active role in dynamically changing the bit rate of each source connected to the communications network in order to provide the maximum possible bit rate for each source based on the total numbers of sources attached to the communications network. An ABR source periodically transmits a resource management (RM) cell for every Nrm cells transmitted. When the data cells reach their destination, the RM cells that were sent with the data cells to the destination are sent back to the source. As the RM cells travel through this loop between the source and the destination, any switch along the loop can mark these RM cells to indicate a congestion level and a change in rate for the source. Thus, with the RM cells, the switches can actively control the bit rates of the sources in order to minimize congestion within the communications network.
Two approaches have been defined by the ATM Forum for modifying RM cells within a switch. These include a relative rate marking method and an explicit rate (ER) marking method. In relative rate marking method, a switch will generate a signal to indicate to the source whether it should increase its bit rate, decrease its bit rate or keep its bit rate constant relative to its current bit rate so that no explicit bit rate for any source is specified. Because of the limited amount of information (e.g., increase, decrease or keep your bit rate constant) fed back to the source in this class of marking methods, a VC that passes through more switches between its source and its destination will typically receive less bandwidth since each switch may request a source to decrease its bit rate. This is referred to as the "beat down" problem. With an explicit rate marking method, a switch will compute an appropriate adjusted rate for a particular source and feedback that appropriate rate at which the source should be transmitting so that fairness between all of the sources may be maintained.
Several concerns and problems have to be addressed by any ER marking method including congestion control and a fair resource allocation. Congestion occurs when the combined bit rate of all of the sources connected through a common transmission resource of a switch (e.g. an external port or an internal link) is greater than the capacity of that transmission resource. Resource allocation involves fairly allocating the available bit rate on such transmission resources among several sources. These two factors operate at different time scales. In particular, congestion arises as the resource usage of a switch changes. For example, as high priority sources, such as constant bit rate or variable bit rate sources, start transmitting, ABR cells may queue up at transmission resources. To prevent severe cell loss when queues overflow, the source bit rates need to be reduced quickly. Thus, to control congestion, the ER marking method has to update source rates as each RM cell is received. Fairness, on the other hand, is not as important during transient congestion conditions, but should be attained as the network pulls itself out of congestion and achieves a stable state. Thus, to achieve fairness, source rate changes can take effect on a longer time scale, e.g., on a time scale of the order of the worst round trip control delay. Several fairness criteria have been defined by the ATM Forum. Most conventional methods and systems only support one criterion.
In general, to determine an explicit bit rate for a source, there are two types of information an ER method may use. These include the current bit rate of the source and the queue length (i.e. the number of data cells that are waiting to be transmitted by the transmission resource ). In one conventional system and method, the bit rate is the primary information used to adjust the bit rate of the source, whereas in another conventional system and method the queue length is used to adjust the bit rate. Systems do not typically utilize both the queue length and bit rate information in a congestion control system and method to achieve a stable operation of the communications network in the ABR service class.
In addition to the bit rate and queue length, it is also desirable to keep track of the number of active connections competing for bandwidth at the various switch ports since this number is used to allocate bandwidth to individual VCs to achieve "max-min" fairness (i.e., fair distribution of the total available bandwidth between the VCs attached to a switch port). The number of active users connected to a switch may also be used to adjust the control parameters of the switch dynamically. To estimate this number, one conventional system and method requires monitoring the activity of each VC to determine the number of VCs attached to a switch port that are active, which may be difficult to implement. If this number is used directly to allocate resource, as implemented by some conventional systems and methods, the performance of the system will depend on the accuracy of the measurement.
Thus, there is a need for an explicit rate congestion control system and method which avoid these and other problems of known systems and methods, and it is to this end that the present invention is directed.